home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / e / ddmoduls.lha / dd_Modules / dd_dos / dd_filenotify.e next >
Text File  |  1995-08-13  |  839b  |  36 lines

  1. OPT MODULE
  2.  
  3. MODULE 'dos/dos',
  4.        'dos/notify'
  5.  
  6. ENUM EXC_SIGNAL,EXC_FILENOTIFY
  7.  
  8. RAISE EXC_SIGNAL IF AllocSignal()=-1
  9.  
  10. EXPORT OBJECT filenotify PRIVATE
  11.   notifyrequest:notifyrequest
  12.   signalmask:LONG
  13. ENDOBJECT
  14.  
  15. EXPORT PROC new(name) OF filenotify HANDLE
  16.   self.notifyrequest.signalnum:=AllocSignal(-1)
  17.   self.notifyrequest.name:=name
  18.   self.notifyrequest.flags:=NRF_SEND_SIGNAL
  19.   self.notifyrequest.task:=FindTask(0)
  20.   self.signalmask:=Shl(1,self.notifyrequest.signalnum)
  21.   StartNotify(self.notifyrequest)
  22. EXCEPT
  23.   -> some allocation failed
  24.   Raise(EXC_FILENOTIFY)
  25. ENDPROC self.signalmask()
  26.  
  27. EXPORT PROC signalmask() OF filenotify IS self.signalmask
  28.  
  29. EXPORT PROC end() OF filenotify
  30.   EndNotify(self.notifyrequest)
  31.   IF self.notifyrequest.signalnum<>-1
  32.     FreeSignal(self.notifyrequest.signalnum)
  33.     self.signalmask:=0
  34.   ENDIF
  35. ENDPROC
  36.